// 测试购物车数量更新接口
import http from './src/services/http.js'

// 配置axios实例的超时时间为10秒
http.defaults.timeout = 10000

// 添加请求拦截器以便查看请求详情
http.interceptors.request.use(
  (config) => {
    console.log('请求配置:', {
      url: config.url,
      method: config.method,
      headers: config.headers,
      data: config.data
    })
    return config
  },
  (error) => {
    console.error('请求拦截器错误:', error)
    return Promise.reject(error)
  }
)

// 添加响应拦截器以便查看响应详情
http.interceptors.response.use(
  (response) => {
    console.log('响应数据:', response.data)
    console.log('响应状态:', response.status)
    console.log('响应头:', response.headers)
    return response
  },
  (error) => {
    console.error('响应拦截器错误:', {
      message: error.message,
      code: error.code,
      response: error.response ? {
        status: error.response.status,
        data: error.response.data,
        headers: error.response.headers
      } : null
    })
    return Promise.reject(error)
  }
)

// 测试函数
async function testCartQuantityApi() {
  try {
    console.log('\n===== 开始测试购物车数量更新接口 =====')
    
    // 构造符合后端要求的请求参数
    const testPayload = {
      cartId: 1,  // 假设的购物车商品ID
      buyQuantity: 3  // 要更新的数量
    }
    
    console.log('发送请求参数:', testPayload)
    
    // 记录请求开始时间，用于计算请求耗时
    const startTime = Date.now()
    
    // 发送请求到后端接口
    const response = await http.put('/carts/quantity', testPayload)
    
    // 计算请求耗时
    const endTime = Date.now()
    console.log('请求耗时:', endTime - startTime, 'ms')
    
    // 检查响应状态
    if (response?.data?.code === 200) {
      console.log('购物车数量更新成功！')
      console.log('完整响应数据:', response.data)
    } else {
      console.warn('购物车数量更新返回非成功状态:', response?.data)
    }
    
    console.log('\n===== 测试购物车列表接口 =====')
    // 测试完成后，获取购物车列表，检查数量是否已更新
    const cartListResponse = await http.get('/carts/list')
    console.log('购物车列表数据:', cartListResponse.data)
    
  } catch (error) {
    console.error('\n测试失败:', error.message)
    if (error.code === 'ECONNREFUSED') {
      console.error('无法连接到服务器，请检查后端服务是否正在运行')
    } else if (error.response && error.response.status) {
      console.error('HTTP错误状态码:', error.response.status)
      console.error('错误响应数据:', error.response.data)
    }
  }
}

// 运行测试
console.log('请确保后端服务正在运行，API地址配置正确...')
setTimeout(() => {
  testCartQuantityApi().catch(console.error)
}, 1000)